// 重复项 去重
const array = [1, 2, 3, 5, 1, 5, 9, 1, 2, 8];
// call 指定函数 this->第一个参数
// call 借
// console.log(typeof array, Object.prototype.toString.call(array));
// typeof 判断复杂数据类型不太靠谱,不精确
// console.log(Array.isArray(array))

const uniqueArray1 = (arr) => {
    let res = [];
    // O(n^2)
    for (let i = 0; i < arr.length; i++) {
        let temp = arr[i];
        if (res.indexOf(temp) == -1) {
            res.push(temp);
        }
    }
    return res;
}

const uniqueArray2 = (arr) => {
    let res = [];
    let map = {};// temp是key,i是value
    // 以空间换时间
    // 时间复杂度O(1)
    for (let i = 0; i < arr.length; i++) {
        let temp = arr[i];
        console.log(temp);
        if (!map.hasOwnProperty(temp)) {
            map[temp] = i;
            console.log(map);
            res.push(temp);
        }
    }
    return res;
}
uniqueArray2(array);

